package cc.wanforme.fsync.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.*;
import org.springframework.web.client.RestTemplate;

import java.nio.charset.Charset;

/**
 * @author wanne 2021年8月6日
 */
@Configuration
public class RestTemplateConfig {
	
	@Bean
	@Primary
	public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
		RestTemplate restTemplate = new RestTemplate(factory);
		// 支持中文编码
		restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(Charset.forName("UTF-8")));
		return restTemplate;
	}

	@Bean
	public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
		SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
		factory.setReadTimeout(60000);// 单位为ms
		factory.setConnectTimeout(60000);// 单位为ms
		factory.setBufferRequestBody(false); // 关闭缓冲区，直接写入 IO 流
		return factory;
	}

}
